home *** CD-ROM | disk | FTP | other *** search
/ .net 2000 December / Net78.iso / pc / Software / Netscape 6 / PC / xpcom.xpi / install.js next >
Encoding:
JavaScript  |  2000-09-29  |  5.2 KB  |  170 lines

  1. // this function verifies disk space in kilobytes
  2. function verifyDiskSpace(dirPath, spaceRequired)
  3. {
  4.   var spaceAvailable;
  5.  
  6.   // Get the available disk space on the given path
  7.   spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
  8.  
  9.   // Convert the available disk space into kilobytes
  10.   spaceAvailable = parseInt(spaceAvailable / 1024);
  11.  
  12.   // do the verification
  13.   if(spaceAvailable < spaceRequired)
  14.   {
  15.     logComment("Insufficient disk space: " + dirPath);
  16.     logComment("  required : " + spaceRequired + " K");
  17.     logComment("  available: " + spaceAvailable + " K");
  18.     return(false);
  19.   }
  20.  
  21.   return(true);
  22. }
  23.  
  24. function updateWinReg()
  25. {
  26.   //Notes:
  27.   // can't use a double backslash before subkey - Windows already puts it in.
  28.   // subkeys have to exist before values can be put in.
  29.   var winreg = getWinRegistry();
  30.   var subkey;  //the name of the subkey you are poking around in
  31.   var valname; // the name of the value you want to look at
  32.   var value;   //the data in the value you want to look at.
  33.  
  34.   if(winreg != null) 
  35.   {
  36.     winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
  37.     subkey  = "SOFTWARE\\Netscape";
  38.     winreg.createKey(subkey,"");
  39.  
  40.     subkey  = "SOFTWARE\\Netscape\\Netscape 6";
  41.     winreg.createKey(subkey,"");
  42.  
  43.     valname = "CurrentVersion";
  44.     value   = "6.0b3 (en)";
  45.     err     = winreg.setValueString(subkey, valname, value);
  46.  
  47.     subkey  = "SOFTWARE\\Netscape\\Netscape 6\\6.0b3 (en)";
  48.     winreg.createKey(subkey,"");
  49.  
  50.     subkey  = "SOFTWARE\\Netscape\\Netscape 6\\6.0b3 (en)\\Main";
  51.     winreg.createKey(subkey,"");
  52.  
  53.     valname = "Install Directory";
  54.     value   = fCommunicator;
  55.     err     = winreg.setValueString(subkey, valname, value);
  56.  
  57.     subkey  = "SOFTWARE\\Netscape\\Netscape 6\\6.0b3 (en)\\Uninstall";
  58.     winreg.createKey(subkey,"");
  59.  
  60.     valname = "Uninstall Log Folder";
  61.     value   = szUninstall;
  62.     err     = winreg.setValueString(subkey, valname, value);
  63.  
  64.     valname = "Description";
  65.     value   = "Netscape 6 (6.0b3)";
  66.     err     = winreg.setValueString(subkey, valname, value);
  67.   }
  68. }
  69.  
  70. // main
  71. var srDest;
  72. var err;
  73. var szUninstall;
  74. var fCommunicator;
  75. var fWindowsSystem;
  76. var fileTemp;
  77. var fileComponentReg;
  78. var fileComponentRegStr;
  79. var fileMsvcrt;
  80. var fileMsvcirt;
  81.  
  82. srDest = 1473;
  83. err    = initInstall("Netscape XPCom", "XPCom", "6.0.N6.2000092909"); 
  84. logComment("initInstall: " + err);
  85.  
  86. fCommunicator  = getFolder("Program");
  87. fWindowsSystem = getFolder("Win System");
  88. logComment("fCommunicator: " + fCommunicator);
  89.  
  90. // build the uninstall folder path
  91. szUninstall = fCommunicator + "Uninstall";
  92.  
  93. // Log component.reg and xpcom.log files so it can be deleted by
  94. // the uninstaller.
  95. // These two files are created after installation is done, thus
  96. // are normally not logged for uninstall.
  97. logComment("Installing: " + fCommunicator + "component.reg");
  98.  
  99. if(verifyDiskSpace(fCommunicator, srDest))
  100. {
  101.   setPackageFolder(fCommunicator);
  102.   err = addDirectory("",
  103.                      "6.0.N6.2000092909",
  104.                      "bin",              // dir name in jar to extract 
  105.                      fCommunicator,      // Where to put this file (Returned from getFolder) 
  106.                      "",                 // subdir name to create relative to fCommunicator
  107.                      true);              // Force Flag 
  108.   logComment("addDirectory() of Program returned: " + err);
  109.  
  110.   if(err == SUCCESS)
  111.   {
  112.     fileTemp   = fWindowsSystem + "msvcrt.dll";
  113.     fileMsvcrt = getFolder("file:///", fileTemp);
  114.     rv         = File.exists(fileMsvcrt);
  115.     logComment("fileExists() returned: " + rv);
  116.     if(rv == false)
  117.     {
  118.       logComment("File not found: " + fileMsvcrt);
  119.       err = addFile("/Microsoft/Shared",
  120.                     "6.0.N6.2000092909",
  121.                     "msvcrt.dll",         // dir name in jar to extract 
  122.                     fWindowsSystem,       // Where to put this file (Returned from getFolder) 
  123.                     "",                   // subdir name to create relative to fCommunicator
  124.                     WIN_SHARED_FILE);
  125.       logComment("addFile() of msvcrt.dll returned: " + err);
  126.     }
  127.     else
  128.     {
  129.       logComment("File found: " + fileMsvcrt);
  130.     }
  131.  
  132.     fileTemp    = fWindowsSystem + "msvcirt.dll";
  133.     fileMsvcirt = getFolder("file:///", fileTemp);
  134.     rv          = File.exists(fileMsvcirt);
  135.     logComment("fileExists() returned: " + rv);
  136.     if(rv == false)
  137.     {
  138.       logComment("File not found: " + fileMsvcirt);
  139.       err = addFile("/Microsoft/Shared",
  140.                     "6.0.N6.2000092909",
  141.                     "msvcirt.dll",        // dir name in jar to extract 
  142.                     fWindowsSystem,       // Where to put this file (Returned from getFolder) 
  143.                     "",                   // subdir name to create relative to fCommunicator
  144.                     WIN_SHARED_FILE);
  145.       logComment("addFile() of msvcirt.dll returned: " + err);
  146.     }
  147.     else
  148.     {
  149.       logComment("File found: " + fileMsvcirt);
  150.     }
  151.  
  152.     if(!err)
  153.     {
  154.       updateWinReg();
  155.  
  156.       err = performInstall(); 
  157.       logComment("performInstall() returned: " + err);
  158.     }
  159.     else
  160.       cancelInstall(err);
  161.   }
  162.   else
  163.     cancelInstall(err);
  164. }
  165. else
  166.   cancelInstall(INSUFFICIENT_DISK_SPACE);
  167.  
  168. // end main
  169.  
  170.